package com.alm.handle.service;

import com.alm.handle.core.domain.entity.AlmDataTransmitConfig;
import com.alm.handle.core.domain.entity.rq.AlmDataTransmitConfigAddRq;
import com.alm.handle.core.domain.entity.rq.AlmDataTransmitConfigEditRq;
import com.alm.handle.core.domain.entity.rq.AlmDataTransmitConfigListRq;
import com.alm.handle.core.domain.entity.rq.EditEnabledStatusRq;
import com.alm.handle.core.domain.entity.rs.AlmDataTransmitConfigRs;
import com.alm.handle.core.domain.entity.vo.TestTransmitVO;

import java.util.List;
import java.util.Map;

/**
 * @author ywy
 * @date 2024/7/17
 */
public interface DataTransmitService {
    /**
     * 新增
     * @param rq
     * @return
     */
    int add(AlmDataTransmitConfigAddRq rq);

    /**
     * 编辑
     * @param rq
     * @return
     */
    int edit(AlmDataTransmitConfigEditRq rq);

    /**
     * 详情
     * @param id
     * @return
     */
    AlmDataTransmitConfigRs detail(Long id);

    /**
     * 根据id删除
     * @param id
     * @return
     */
    int del(Long id);

    /**
     * 修改启用状态
     * @param rq
     * @return
     */
    int changeEnabledStatus(EditEnabledStatusRq rq);

    /**
     * 获取列表
     * @param rq
     * @return
     */
    List<AlmDataTransmitConfigRs> getList(AlmDataTransmitConfigListRq rq);

    /**
     * 数据转发到指定服务器
     * @param transmitMap
     * @param transmitConfig
     */
    void sendTransmitData(Map<String, Object> transmitMap, AlmDataTransmitConfig transmitConfig);

    /**
     * 用来接收，主要是做测试用的，没有实际用途
     * @param vo
     */
    void test(TestTransmitVO vo);
}
